package com.kaili.basic.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.kaili.basic.pojo.dto.StrategyMainQueryDto;
import com.kaili.basic.pojo.entity.StrategyMainEntity;
import com.kaili.basic.pojo.vo.StrategyMainVO;

import java.util.List;

/**
* 策略管理主 service接口
* @author:zhangjl
* @Time: 2019-07-24
* @Copyright: ©  杭州凯立通信有限公司 版权所有
* @Warning: 本内容仅限于公司内部传阅,禁止外泄或用于其它商业目的
*/
public interface IStrategyMainService extends IService<StrategyMainEntity> {

    /**
     * 根据ID查询策略管理
     * @param id
     * @return
     */
    StrategyMainVO queryById(Integer id);

    /**
     * 条件查询：策略名称
     * @param dto
     * @return
     */
    List<StrategyMainVO> queryList(StrategyMainQueryDto dto);

    /**
     * 分页查询策略管理列表
     * @param page
     * @param dto
     * @return
     */
    Page<StrategyMainVO> queryPageList(Page<StrategyMainVO> page, StrategyMainQueryDto dto);

    /**
     * 保存设备策类略管理
     * @param entity
     * @return
     */
    boolean add(StrategyMainEntity entity);

    /**
     * 保存应用类策略
     * @param entity
     * @return
     */
    boolean addApply(StrategyMainEntity entity);

    /**
     * 保存升级类策略
     * @param entity
     * @return
     */
    boolean addUpgrade(StrategyMainEntity entity);

    /**
     * 修改设备策类略管理
     * @param entity
     * @return
     */
    boolean modify(StrategyMainEntity entity);

    /**
     * 修改应用类策略
     * @param entity
     * @return
     */
    boolean modifyApply(StrategyMainEntity entity);

    /**
     * 修改升级类策略
     * @param entity
     * @return
     */
    boolean modifyUpgrade(StrategyMainEntity entity);

    /**
     * 批量修改状态
     * @param idList
     * @param status
     * @return
     */
    Boolean updateStatus(List<Integer> idList, Integer status);

    /**
     * 策略管理导出
     * @param dto
     * @return
     */
    List<StrategyMainVO> queryExportList(StrategyMainQueryDto dto);

}
